package cn.school.teacher.evaluation.entity;

import cn.school.common.utils.SysUserUtils;
import cn.school.teacher.evaluation.dto.UserDto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

@Data
@TableName("t_teacher_evaluation_task")
public class TeacherEvaluationTask implements Serializable {

  private static final long serialVersionUID = -5157518890494647634L;
  @TableId
  private Long id;
  private String remarks;
  private Date createTime;
  private Date modifyTime;

  // ==== 考评阶段 =====
  private Short tetaStageType; // 考评类型:1 学年，2 学期， 3月份
  private Long acyeId; // 学年ID
  private Long tetiId; // 学年学期ID
  private Integer tetaMonth; // 学年月份

  // ==== 考评方案 ====
  private Short tetaType; // 任务类型（和方案类型对应）：0 班主任考评任务， 1 教职工考评任务
  private Long tescId; // 方案ID(对应的具体考评方案)

  private Long userId; // 任务发起者
  @TableField(exist = false)
  private String userName;

  private Short tetaStatus; // 任务状态:0：进行中；1：结束
  private String tetaName; // 任务名称

  // ==== 目标人群 ====
  private Short tetaUserIsVisit; // 评分，打分参与者是否可见
  private Long tetaCoverUserId; // 受评人ID
  @TableField(exist = false)
  private String tetaCoverUserName;


  @TableField(exist = false)
  private UserDto tetaCoverUser; // 受评人(只做vo返回时，放对象用)






  // ==== 打分人，参与者 在中间关系表中 ====> 老师考评用户(子)任务
  @TableField(exist = false)
  private List<UserDto> scoreUserList; // 打分人(只做vo返回时，放对象用)
  /**
   * 默认租户为当前登录人的租户
   */
  private String tenantId = SysUserUtils.getSysUser().getTenantId();

}
